Skip to content

Conversation

@nevo-david
Copy link
Contributor

@nevo-david nevo-david commented Dec 8, 2024

Summary by CodeRabbit

  • New Features

    • Enhanced post content rendering by removing markdown formatting in the calendar view.
    • Introduced error handling and user feedback through toast notifications in the LinkedIn integration.
    • Added functionality for tagging companies in LinkedIn during post editing.
  • Bug Fixes

    • Improved robustness of LinkedIn company URL handling.
  • Documentation

    • Updated text formatting to highlight mentions in the output.
  • Chores

    • Minor code structure and formatting adjustments for better readability.

@vercel
Copy link

vercel bot commented Dec 8, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
gitroom ✅ Ready (Inspect) Visit Preview 💬 Add feedback Dec 8, 2024 11:57am
1 Skipped Deployment
Name Status Preview Comments Updated (UTC)
postiz ⬜️ Ignored (Inspect) Visit Preview Dec 8, 2024 11:57am

@coderabbitai
Copy link

coderabbitai bot commented Dec 8, 2024

Caution

Review failed

The pull request is closed.

Walkthrough

The pull request introduces several modifications across multiple components and libraries within the application. Key changes include the integration of the remove-markdown library for formatting post content in the calendar, updates to font class usage in the GeneralPreviewComponent, enhanced error handling in the LinkedinCompany component, and the addition of text formatting functionality in the useFormatting hook. Additionally, the high.order.provider has been updated to support LinkedIn tagging, and the LinkedinProvider class has received improvements for text processing and URL handling.

Changes

File Path Change Summary
apps/frontend/src/components/launches/calendar.tsx Added import for remove-markdown and modified CalendarItem to strip markdown from post content before rendering.
apps/frontend/src/components/launches/general.preview.component.tsx Removed Chakra_Petch import, replaced with interClass, and updated text rendering in the pre element.
apps/frontend/src/components/launches/helpers/linkedin.component.tsx Added useToaster import, implemented error handling in getCompany with toast notifications, and modified return behavior.
apps/frontend/src/components/launches/helpers/use.formatting.ts Enhanced useFormatting to replace @username mentions with <strong> tags in formatted output.
apps/frontend/src/components/launches/providers/high.order.provider.tsx Added showLinkedinPopUp state and tagPersonOrCompany function to manage LinkedIn tagging in the editor.
libraries/nestjs-libraries/src/integrations/social/linkedin.provider.ts Introduced fixText method for text formatting, updated regex in company method, and modified post method to use fixText.

Possibly related PRs

🐰 "In the calendar, markdown's gone,
Clean and clear, a new dawn!
With LinkedIn tags, we now can play,
A toast to changes, hip-hip-hooray!
Fonts are fresh, and toasts now greet,
Our app's a treat, oh what a feat!" 🥕


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between a9630b6 and be75123.

📒 Files selected for processing (6)
  • apps/frontend/src/components/launches/calendar.tsx (2 hunks)
  • apps/frontend/src/components/launches/general.preview.component.tsx (2 hunks)
  • apps/frontend/src/components/launches/helpers/linkedin.component.tsx (2 hunks)
  • apps/frontend/src/components/launches/helpers/use.formatting.ts (1 hunks)
  • apps/frontend/src/components/launches/providers/high.order.provider.tsx (6 hunks)
  • libraries/nestjs-libraries/src/integrations/social/linkedin.provider.ts (4 hunks)

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@nevo-david nevo-david merged commit 77c79f9 into main Dec 8, 2024
5 checks passed
Comment on lines +290 to +296
return p
.replace(/\*/g, '\\*')
.replace(/\(/g, '\\(')
.replace(/\)/g, '\\)')
.replace(/\{/g, '\\{')
.replace(/}/g, '\\}')
.replace(/@/g, '\\@');

Check failure

Code scanning / CodeQL

Incomplete string escaping or encoding High

This does not escape backslash characters in the input.

Copilot Autofix

AI about 1 year ago

To fix the problem, we need to ensure that all occurrences of the characters being escaped are replaced. This can be achieved by using regular expressions with the global flag (g). This ensures that every instance of the character in the string is replaced, not just the first one.

We will modify the fixText function to use regular expressions with the global flag for each character that needs to be escaped.

Suggested changeset 1
libraries/nestjs-libraries/src/integrations/social/linkedin.provider.ts

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/libraries/nestjs-libraries/src/integrations/social/linkedin.provider.ts b/libraries/nestjs-libraries/src/integrations/social/linkedin.provider.ts
--- a/libraries/nestjs-libraries/src/integrations/social/linkedin.provider.ts
+++ b/libraries/nestjs-libraries/src/integrations/social/linkedin.provider.ts
@@ -294,3 +294,3 @@
         .replace(/\{/g, '\\{')
-        .replace(/}/g, '\\}')
+        .replace(/\}/g, '\\}')
         .replace(/@/g, '\\@');
EOF
@@ -294,3 +294,3 @@
.replace(/\{/g, '\\{')
.replace(/}/g, '\\}')
.replace(/\}/g, '\\}')
.replace(/@/g, '\\@');
Copilot is powered by AI and may make mistakes. Always verify output.
Comment on lines +290 to +295
return p
.replace(/\*/g, '\\*')
.replace(/\(/g, '\\(')
.replace(/\)/g, '\\)')
.replace(/\{/g, '\\{')
.replace(/}/g, '\\}')

Check failure

Code scanning / CodeQL

Incomplete string escaping or encoding High

This does not escape backslash characters in the input.
Comment on lines +290 to +294
return p
.replace(/\*/g, '\\*')
.replace(/\(/g, '\\(')
.replace(/\)/g, '\\)')
.replace(/\{/g, '\\{')

Check failure

Code scanning / CodeQL

Incomplete string escaping or encoding High

This does not escape backslash characters in the input.

Copilot Autofix

AI about 1 year ago

To fix the problem, we should replace the custom escaping logic in the fixText function with a well-tested sanitization library. This will ensure that all special characters are properly escaped and reduce the risk of injection attacks or other issues.

The escape-string-regexp library is a well-known library that can be used to escape special characters in a string. We will use this library to replace the custom escaping logic in the fixText function.

Suggested changeset 2
libraries/nestjs-libraries/src/integrations/social/linkedin.provider.ts

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/libraries/nestjs-libraries/src/integrations/social/linkedin.provider.ts b/libraries/nestjs-libraries/src/integrations/social/linkedin.provider.ts
--- a/libraries/nestjs-libraries/src/integrations/social/linkedin.provider.ts
+++ b/libraries/nestjs-libraries/src/integrations/social/linkedin.provider.ts
@@ -16,2 +16,3 @@
 import { Integration } from '@prisma/client';
+import escapeStringRegexp from 'escape-string-regexp';
 
@@ -289,9 +290,3 @@
     const splitTextReformat = splitAll.map((p) => {
-      return p
-        .replace(/\*/g, '\\*')
-        .replace(/\(/g, '\\(')
-        .replace(/\)/g, '\\)')
-        .replace(/\{/g, '\\{')
-        .replace(/}/g, '\\}')
-        .replace(/@/g, '\\@');
+      return escapeStringRegexp(p);
     });
EOF
@@ -16,2 +16,3 @@
import { Integration } from '@prisma/client';
import escapeStringRegexp from 'escape-string-regexp';

@@ -289,9 +290,3 @@
const splitTextReformat = splitAll.map((p) => {
return p
.replace(/\*/g, '\\*')
.replace(/\(/g, '\\(')
.replace(/\)/g, '\\)')
.replace(/\{/g, '\\{')
.replace(/}/g, '\\}')
.replace(/@/g, '\\@');
return escapeStringRegexp(p);
});
package.json
Outside changed files

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/package.json b/package.json
--- a/package.json
+++ b/package.json
@@ -155,3 +155,4 @@
     "yargs": "^17.7.2",
-    "yup": "^1.4.0"
+    "yup": "^1.4.0",
+    "escape-string-regexp": "^5.0.0"
   },
EOF
@@ -155,3 +155,4 @@
"yargs": "^17.7.2",
"yup": "^1.4.0"
"yup": "^1.4.0",
"escape-string-regexp": "^5.0.0"
},
This fix introduces these dependencies
Package Version Security advisories
escape-string-regexp (npm) 5.0.0 None
Copilot is powered by AI and may make mistakes. Always verify output.
Comment on lines +290 to +293
return p
.replace(/\*/g, '\\*')
.replace(/\(/g, '\\(')
.replace(/\)/g, '\\)')

Check failure

Code scanning / CodeQL

Incomplete string escaping or encoding High

This does not escape backslash characters in the input.

Copilot Autofix

AI about 1 year ago

To fix the problem, we should use a well-tested sanitization library to handle the escaping of special characters. This will ensure that all edge cases are covered and reduce the risk of injection attacks or other issues related to incomplete escaping.

In this case, we can use the escape-string-regexp library, which is designed to escape special characters in a string for use in a regular expression. This library is well-tested and widely used, making it a reliable choice for our needs.

We will:

  1. Install the escape-string-regexp library.
  2. Import the library in the file.
  3. Use the library to escape the special characters in the fixText function.
Suggested changeset 2
libraries/nestjs-libraries/src/integrations/social/linkedin.provider.ts

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/libraries/nestjs-libraries/src/integrations/social/linkedin.provider.ts b/libraries/nestjs-libraries/src/integrations/social/linkedin.provider.ts
--- a/libraries/nestjs-libraries/src/integrations/social/linkedin.provider.ts
+++ b/libraries/nestjs-libraries/src/integrations/social/linkedin.provider.ts
@@ -16,2 +16,3 @@
 import { Integration } from '@prisma/client';
+import escapeStringRegexp from 'escape-string-regexp';
 
@@ -289,9 +290,3 @@
     const splitTextReformat = splitAll.map((p) => {
-      return p
-        .replace(/\*/g, '\\*')
-        .replace(/\(/g, '\\(')
-        .replace(/\)/g, '\\)')
-        .replace(/\{/g, '\\{')
-        .replace(/}/g, '\\}')
-        .replace(/@/g, '\\@');
+      return escapeStringRegexp(p);
     });
EOF
@@ -16,2 +16,3 @@
import { Integration } from '@prisma/client';
import escapeStringRegexp from 'escape-string-regexp';

@@ -289,9 +290,3 @@
const splitTextReformat = splitAll.map((p) => {
return p
.replace(/\*/g, '\\*')
.replace(/\(/g, '\\(')
.replace(/\)/g, '\\)')
.replace(/\{/g, '\\{')
.replace(/}/g, '\\}')
.replace(/@/g, '\\@');
return escapeStringRegexp(p);
});
package.json
Outside changed files

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/package.json b/package.json
--- a/package.json
+++ b/package.json
@@ -155,3 +155,4 @@
     "yargs": "^17.7.2",
-    "yup": "^1.4.0"
+    "yup": "^1.4.0",
+    "escape-string-regexp": "^5.0.0"
   },
EOF
@@ -155,3 +155,4 @@
"yargs": "^17.7.2",
"yup": "^1.4.0"
"yup": "^1.4.0",
"escape-string-regexp": "^5.0.0"
},
This fix introduces these dependencies
Package Version Security advisories
escape-string-regexp (npm) 5.0.0 None
Copilot is powered by AI and may make mistakes. Always verify output.
Comment on lines +290 to +292
return p
.replace(/\*/g, '\\*')
.replace(/\(/g, '\\(')

Check failure

Code scanning / CodeQL

Incomplete string escaping or encoding High

This does not escape backslash characters in the input.

Copilot Autofix

AI about 1 year ago

To fix the problem, we should use a regular expression with the g flag to ensure that all occurrences of the special characters are replaced. This will make the escaping process more reliable and less error-prone. We will update the replace calls in the fixText function to use regular expressions with the g flag.

Suggested changeset 1
libraries/nestjs-libraries/src/integrations/social/linkedin.provider.ts

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/libraries/nestjs-libraries/src/integrations/social/linkedin.provider.ts b/libraries/nestjs-libraries/src/integrations/social/linkedin.provider.ts
--- a/libraries/nestjs-libraries/src/integrations/social/linkedin.provider.ts
+++ b/libraries/nestjs-libraries/src/integrations/social/linkedin.provider.ts
@@ -294,3 +294,3 @@
         .replace(/\{/g, '\\{')
-        .replace(/}/g, '\\}')
+        .replace(/\}/g, '\\}')
         .replace(/@/g, '\\@');
EOF
@@ -294,3 +294,3 @@
.replace(/\{/g, '\\{')
.replace(/}/g, '\\}')
.replace(/\}/g, '\\}')
.replace(/@/g, '\\@');
Copilot is powered by AI and may make mistakes. Always verify output.
Comment on lines +290 to +291
return p
.replace(/\*/g, '\\*')

Check failure

Code scanning / CodeQL

Incomplete string escaping or encoding High

This does not escape backslash characters in the input.
naruki1024 pushed a commit to naruki1024/postiz-app that referenced this pull request Jan 10, 2025
@nevo-david nevo-david deleted the feat/linkedin branch January 26, 2025 10:04
@coderabbitai coderabbitai bot mentioned this pull request Feb 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants